/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.mvc.AdminInterna;

import com.administracion.GestionPermisos;
import com.administracion.PermisoBean;
import com.administracion.UsuarioBean;
import com.mvc.RequestHandler;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author victor
 */
public class ListaPermisosUsuario implements RequestHandler{

    public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, NamingException {
        HttpSession sesion = request.getSession();
        com.beans.UsuarioBean usuario = (com.beans.UsuarioBean) sesion.getAttribute("usuario");

        String nick=(request.getParameter("nick"));
        String nombre=(request.getParameter("nombre"));
        String accion=(request.getParameter("accion"));
        if(accion!=null && accion.equals("G")){ //Guardar Categorias
            String cadenaCategorias=(request.getParameter("cadenaCategorias"));
            if(cadenaCategorias==null) cadenaCategorias="";
            ArrayList lista=crearLista(cadenaCategorias);
            GestionPermisos.getInstance().guardarPermisosCategorias(usuario, nick, lista);
            //request.setAttribute("mensaje", "Usuario "+nick+" actualizado");

            String cadenaAreas=(request.getParameter("cadenaAreas"));
            System.out.println(cadenaAreas);
            if(cadenaAreas==null) cadenaAreas="";
            lista=crearLista(cadenaAreas);
            GestionPermisos.getInstance().guardarPermisosAreas(usuario, nick, lista);

            String cadenaLigas=(request.getParameter("cadenaLigas"));
            System.out.println(cadenaLigas);
            if(cadenaLigas==null) cadenaLigas="";
            lista=crearLista(cadenaLigas);
            GestionPermisos.getInstance().guardarPermisosLigas(usuario, nick, lista);

            request.setAttribute("mensaje", "Usuario "+nick+" actualizado.");
            
        }
        ArrayList listaCategorias=GestionPermisos.getInstance().hacerListaCategorias(nick);
        ArrayList listaAreas=GestionPermisos.getInstance().hacerListaAreas(nick);
        ArrayList listaLigas=GestionPermisos.getInstance().hacerListaLigas(nick);

        request.setAttribute("listaCategorias", listaCategorias);
        request.setAttribute("listaAreas", listaAreas);
        request.setAttribute("listaLigas", listaLigas);
        
        request.setAttribute("nick", nick);
        request.setAttribute("nombre", nombre);

    }

    private ArrayList crearLista(String texto) {
        ArrayList lista=new ArrayList();
        StringTokenizer cadena=new StringTokenizer(texto, "|");
        while(cadena.hasMoreTokens()){
            String id=cadena.nextToken();
            String estado=cadena.nextToken();
            System.out.println(id+" "+estado);
            lista.add(new PermisoBean(id, estado));
        }
        return lista;
    }

}
